// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package org.achartengine.tools;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.achartengine.chart.AbstractChart;
import org.achartengine.chart.RoundChart;
import org.achartengine.chart.XYChart;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
// Referenced classes of package org.achartengine.tools:
// AbstractTool, ZoomListener, ZoomEvent
public class Zoom extends AbstractTool
{
public static final int ZOOM_AXIS_X = 1;
public static final int ZOOM_AXIS_XY = 0;
public static final int ZOOM_AXIS_Y = 2;
private boolean a;
private float b;
private List c;
private boolean d;
private boolean e;
public Zoom(AbstractChart abstractchart, boolean flag, float f)
{
super(abstractchart);
c = new ArrayList();
d = false;
e = false;
a = flag;
setZoomRate(f);
}
private void a(ZoomEvent zoomevent)
{
this;
JVM INSTR monitorenter ;
for (Iterator iterator = c.iterator(); iterator.hasNext(); ((ZoomListener)iterator.next()).zoomApplied(zoomevent)) { }
break MISSING_BLOCK_LABEL_44;
Exception exception;
exception;
throw exception;
this;
JVM INSTR monitorexit ;
}
public void addZoomListener(ZoomListener zoomlistener)
{
this;
JVM INSTR monitorenter ;
c.add(zoomlistener);
this;
JVM INSTR monitorexit ;
return;
Exception exception;
exception;
throw exception;
}
public void apply(int i)
{
if (mChart instanceof XYChart)
{
int j = mRenderer.getScalesCount();
int k = 0;
while (k < j)
{
double ad[] = getRange(k);
checkRange(ad, k);
double ad1[] = mRenderer.getZoomLimits();
double d1 = (ad[0] + ad[1]) / 2D;
double d2 = (ad[2] + ad[3]) / 2D;
double d3 = ad[1] - ad[0];
double d4 = ad[3] - ad[2];
double d5 = d1 - d3 / 2D;
double d6 = d1 + d3 / 2D;
double d7 = d2 - d4 / 2D;
double d8 = d2 + d4 / 2D;
if (k == 0)
{
double d13;
double d14;
boolean flag;
boolean flag1;
if (ad1 != null && (d5 <= ad1[0] || d6 >= ad1[1]))
{
flag = true;
} else
{
flag = false;
}
d = flag;
if (ad1 != null && (d7 <= ad1[2] || d8 >= ad1[3]))
{
flag1 = true;
} else
{
flag1 = false;
}
e = flag1;
}
if (a)
{
DefaultRenderer defaultrenderer;
double d9;
double d10;
double d11;
double d12;
double d15;
if (mRenderer.isZoomXEnabled() && (i == 1 || i == 0))
{
if (d && b < 1.0F)
{
d15 = d3;
} else
{
d15 = d3 / (double)b;
}
} else
{
d15 = d3;
}
if (mRenderer.isZoomYEnabled() && (i == 2 || i == 0))
{
if (e && b < 1.0F)
{
d9 = d4;
d10 = d15;
} else
{
d9 = d4 / (double)b;
d10 = d15;
}
} else
{
d9 = d4;
d10 = d15;
}
} else
{
if (mRenderer.isZoomXEnabled() && !d && (i == 1 || i == 0))
{
d3 *= b;
}
if (mRenderer.isZoomYEnabled() && !e && (i == 2 || i == 0))
{
d9 = d4 * (double)b;
d10 = d3;
} else
{
d9 = d4;
d10 = d3;
}
}
if (ad1 != null)
{
d11 = Math.min(mRenderer.getZoomInLimitX(), ad1[1] - ad1[0]);
d12 = Math.min(mRenderer.getZoomInLimitY(), ad1[3] - ad1[2]);
} else
{
d11 = mRenderer.getZoomInLimitX();
d12 = mRenderer.getZoomInLimitY();
}
d13 = Math.max(d10, d11);
d14 = Math.max(d9, d12);
if (mRenderer.isZoomXEnabled() && (i == 1 || i == 0))
{
setXRange(d1 - d13 / 2D, d1 + d13 / 2D, k);
}
if (mRenderer.isZoomYEnabled() && (i == 2 || i == 0))
{
setYRange(d2 - d14 / 2D, d2 + d14 / 2D, k);
}
k++;
}
} else
{
defaultrenderer = ((RoundChart)mChart).getRenderer();
if (a)
{
defaultrenderer.setScale(defaultrenderer.getScale() * b);
} else
{
defaultrenderer.setScale(defaultrenderer.getScale() / b);
}
}
a(new ZoomEvent(a, b));
}
public void notifyZoomResetListeners()
{
this;
JVM INSTR monitorenter ;
for (Iterator iterator = c.iterator(); iterator.hasNext(); ((ZoomListener)iterator.next()).zoomReset()) { }
break MISSING_BLOCK_LABEL_43;
Exception exception;
exception;
throw exception;
this;
JVM INSTR monitorexit ;
}
public void removeZoomListener(ZoomListener zoomlistener)
{
this;
JVM INSTR monitorenter ;
c.remove(zoomlistener);
this;
JVM INSTR monitorexit ;
return;
Exception exception;
exception;
throw exception;
}
public void setZoomRate(float f)
{
b = f;
}
}